package fr.vahren.dotastrat.game.command;

import fr.vahren.dotastrat.model.D2SCreeps;
import fr.vahren.dotastrat.model.D2SHeroUnit;
import fr.vahren.dotastrat.model.D2STower;
import fr.vahren.dotastrat.model.D2SZone;

public class D2SCreepAction {

	private D2SHeroUnit heroTarget;
	private D2STower buildingTarget;
	private D2SZone buldingZone;
	private D2SCreeps creepTarget;
	private int zoneTarget;
	private int zoneSrc;
	private D2SCreepActionType type;

	private D2SCreeps creep;

	public static D2SCreepAction moveAction(D2SCreeps creep, int src, int dest) {
		D2SCreepAction a = new D2SCreepAction();
		a.setZoneSrc(src);
		a.setZoneTarget(dest);
		a.setType(D2SCreepActionType.MOVE);
		return a;
	}

	public static D2SCreepAction atkUnitAction(D2SCreeps creep, D2SHeroUnit u) {
		D2SCreepAction a = new D2SCreepAction();
		a.setHeroTarget(u);
		a.setType(D2SCreepActionType.ATK_UNIT);
		return a;
	}

	public static D2SCreepAction atkBuildingAction(D2SCreeps creep, D2STower t,
			D2SZone zone) {
		D2SCreepAction a = new D2SCreepAction();
		a.setBuildingTarget(t);
		a.setBuldingZone(zone);
		a.setType(D2SCreepActionType.ATK_BUILDING);
		return a;
	}

	public static D2SCreepAction atkCreepAction(D2SCreeps creep, D2SCreeps c) {
		D2SCreepAction a = new D2SCreepAction();
		a.setCreepTarget(c);
		a.setType(D2SCreepActionType.ATK_CREEP);
		return a;
	}

	public D2SHeroUnit getHeroTarget() {
		return heroTarget;
	}

	public void setHeroTarget(D2SHeroUnit heroTarget) {
		this.heroTarget = heroTarget;
	}

	public D2STower getBuildingTarget() {
		return buildingTarget;
	}

	public void setBuildingTarget(D2STower buildingTarget) {
		this.buildingTarget = buildingTarget;
	}

	public D2SCreeps getCreepTarget() {
		return creepTarget;
	}

	public D2SZone getBuldingZone() {
		return buldingZone;
	}

	public void setBuldingZone(D2SZone buldingZone) {
		this.buldingZone = buldingZone;
	}

	public void setCreepTarget(D2SCreeps creepTarget) {
		this.creepTarget = creepTarget;
	}

	public int getZoneTarget() {
		return zoneTarget;
	}

	public void setZoneTarget(int zoneTarget) {
		this.zoneTarget = zoneTarget;
	}

	public int getZoneSrc() {
		return zoneSrc;
	}

	public void setZoneSrc(int zoneSrc) {
		this.zoneSrc = zoneSrc;
	}

	public D2SCreepActionType getType() {
		return type;
	}

	public void setType(D2SCreepActionType type) {
		this.type = type;
	}

	public D2SCreeps getCreep() {
		return creep;
	}

	public void setCreep(D2SCreeps creep) {
		this.creep = creep;
	}

}
